Calling start() on a coroutine that was started with CoroutineStart.LAZY causes the lazy flag to be removed. At that point, the coroutine will be eligible to be executed. Exactly when it will be executed is up to the dispatcher and platform, and it will depend on what other coroutines exist and are running.

You can learn more about this in:
Tags:
Run Edit